home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / misc / amag / AM9401_2.lha / Amiga0194b / Tips & Tricks / FreezeTask.asm < prev    next >
Assembly Source File  |  1994-02-28  |  994b  |  35 lines

  1. * FreezeTask 
  2. * Funktion: friert einen Task ein
  3. * Eingabe : a1=ptr auf Task-Struktur
  4. * Ausgabe : -----------------
  5.  
  6. FreezeTask
  7.   movem.l   d0-d2/a0-a2/a6,-(sp)
  8.   move.l    a1,a2            ;Task retten
  9.   move.l    $4.w,a6
  10.   jsr       _LVODisable(a6)  ;System frieren
  11.   clr.b     TC_STATE(a2)     ;TS_INVALID setzen
  12.   jsr       _LVOEnable(a6)   ;System wecken
  13.   movem.l   (sp)+,d0-a6
  14.   rts
  15.  
  16. * ActivateTask
  17. * Funktion: läßt einen Task aufwachen
  18. * Eingabe : a1=ptr auf Task-Struktur
  19. * Ausgabe : -----------------
  20.  
  21. ActivateTask
  22.   movem.l   d0-d2/a0-a2/a6,-(sp)
  23.   move.l    a1,a2            ;Task retten
  24.   move.l    $4.w,a6
  25.   jsr       _LVODisable(a6)  ;System frieren
  26.   move.b    #TS_READY,TC_STATE(a2) ;TS_READY setzen
  27.   jsr       _LVOEnable(a6)   ;System retten
  28.   move.l    a2,a1            ;Task nach a1
  29.   moveq     #0,d0            ;d0 löschen
  30.   move.b    LN_PRI(a1),d0    ;Prior. aus Task-Struktur
  31.   jsr       _LVOSetTaskPri(A6)  ;Task wird neu berechnet
  32.   movem.l (sp)+,d0-d2/a0-a2/a6
  33.   rts
  34.  
  35.